﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using WcfService1.DTO;

namespace WcfService1
{
    // NOTE: You can use the "Rename" command on the "Refactor" Coa to change the interface name "ICoaServices" in both code and config file together.
    [ServiceContract]
    public interface ICoaServices
    {
        [OperationContract]
        List<CoaDTO> GetList(int page, out long recordCount, string sortProperty = null, string sortType = "ASC");

        [OperationContract]
        bool Save(CoaDTO Coa);

        [OperationContract]
        bool Delete(CoaDTO Coa);

        [OperationContract]
        List<CoaDTO> GetListByCriteria(Dictionary<String, Object> criteria, string expression, int page,
                                       out long recordCount);

        [OperationContract]
        List<CoaDTO> GetAllCoa();

        [OperationContract]
        CoaDTO GetCoa(string accountNumber);

        [OperationContract]
        List<CoaDTO> GetCoaList(string accountNumber);

        [OperationContract]
        IEnumerable<CoaDTO> GetCoaKasBank();

         [OperationContract]
        IEnumerable<CoaDTO> GetCoaInventory();

         [OperationContract]
        IEnumerable<CoaDTO> GetCoaHpp();

         [OperationContract]
        IEnumerable<CoaDTO> GetCoaSales();

         [OperationContract]
        IEnumerable<CoaDTO> GetCoaSalesReturn();

         [OperationContract]
        IEnumerable<CoaDTO> GetCoaExpense();

        [OperationContract]
        void SaveSaldoAwalHutang(IEnumerable<SaldoAwalHutang> saldoAwalHutangs);

        [OperationContract]
        void SaveSaldoAwalPiutang(IEnumerable<SaldoAwalPiutang> saldoAwalPiutangs);

        [OperationContract]
        IEnumerable<SaldoAwalHutang> GetMutasiHutang(string accountNumber);

        [OperationContract]
        IEnumerable<SaldoAwalPiutang> GetMutasiPiutang(string accountNumber);
    }
}